import { toRaw, toRef, isRef, isReactive } from "vue"

// 使 store 数据展开保留响应式
export function storeToRefs(store) {
    store = toRaw(store); // 将 proxy 变为普通值
    const refs = {}
    for (let key in store) {
        const value = store[key];
        // 只让 store.state 状态展开依旧保留响应式(方法不做处理)
        if (isRef(value) || isReactive(value)) {
            refs[key] = toRef(store, key); // 普通值设置响应式
        }
    }
    return refs
}